/*
 * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 * 
 * This code is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2
 * only, as published by the Free Software Foundation.
 * 
 * This code is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License version 2 for more details (a copy is
 * included in the LICENSE file that accompanied this code).
 * 
 * You should have received a copy of the GNU General Public License
 * version 2 along with this work; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 * 
 * Please contact Sun Microsystems, Inc., 16 Network Circle, Menlo
 * Park, CA 94025 or visit www.sun.com if you need additional
 * information or have any questions.
 */

package com.sun.spot.flashmanagement;


/**
 * IAddressableNorFlashSector extends {@link com.sun.squawk.peripheral.INorFlashSector} to support
 * the ability to assign virtual memory addresses to sectors.
 */
public interface IAddressableNorFlashSector {

	/**
	 * Set the virtual memory address associated with this sector.
	 * @param virtualAddress The new virtual memory address
	 * 
	 */
	void setVirtualAddress(int virtualAddress);

	/**
	 * @return The virtual address associated with this sector.
	 */
	int getVirtualStartAddressAsInt();

	/**
	 * @return The unique sector number associated with this sector.
	 */
	int getSectorNumber();

	/**
	 * @return The physical memory address of the start of this sector. 
	 */
	int getStartAddressAsInt();

    public int getSize();
    
    public void getBytes(int memoryOffset, byte[] buffer, int bufferOffset, int length);
    
    public void erase();
    
    public void setBytes(int memoryOffset, byte[] buffer, int bufferOffset, int length);

}

